<html>
<head><meta charset="utf-8"><title>meeting 2019.04.16 · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html">meeting 2019.04.16</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="163494712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163494712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163494712">(Apr 16 2019 at 18:34)</a>:</h4>
<p>Hello <span class="user-group-mention" data-user-group-id="1184">@WG-polonius</span> <span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="163494938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163494938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163494938">(Apr 16 2019 at 18:37)</a>:</h4>
<p>Er, wait, I'm early :P</p>



<a name="163494951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163494951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163494951">(Apr 16 2019 at 18:37)</a>:</h4>
<p>Yep</p>



<a name="163494957"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163494957" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163494957">(Apr 16 2019 at 18:37)</a>:</h4>
<p>Never mind :)</p>



<a name="163494966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163494966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163494966">(Apr 16 2019 at 18:37)</a>:</h4>
<p>I'm here though!</p>



<a name="163494998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163494998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163494998">(Apr 16 2019 at 18:37)</a>:</h4>
<p>Either way, we can proceed now, or I can investigate some other stuff. I guess it's mostly just you at this point</p>



<a name="163495068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495068">(Apr 16 2019 at 18:38)</a>:</h4>
<p>How goes, <span class="user-mention" data-user-id="204115">@Albin Stjerna</span> =)</p>



<a name="163495078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495078">(Apr 16 2019 at 18:38)</a>:</h4>
<p>I guess so, in particular since <span class="user-mention" data-user-id="116113">@lqd</span> couldn't attend</p>



<a name="163495103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495103">(Apr 16 2019 at 18:38)</a>:</h4>
<p>The other person was <span class="user-mention" data-user-id="116118">@Matthew Jasper</span> I think but I think they're more following along for now</p>



<a name="163495115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495115">(Apr 16 2019 at 18:38)</a>:</h4>
<p>ah, yeah probably</p>



<a name="163495153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495153">(Apr 16 2019 at 18:39)</a>:</h4>
<p>We had talked about trying to make a more detailed schedule this week, but maybe we can start by checking in on whether you've had much luck with the liveness and other things we talked about from last week</p>



<a name="163495246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495246">(Apr 16 2019 at 18:40)</a>:</h4>
<p>I can report that a) the new computer I built builds rustc in half the time of my laptop (surprise), and b) I have finally finished the paperwork to get registered on the master's course, after camping out outside Tobias office for roughly an hour</p>



<a name="163495265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495265">(Apr 16 2019 at 18:40)</a>:</h4>
<p>Say more about (a)?</p>



<a name="163495278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495278">(Apr 16 2019 at 18:40)</a>:</h4>
<p>Oh, new <em>computer</em></p>



<a name="163495287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495287">(Apr 16 2019 at 18:40)</a>:</h4>
<p>I misread that a few times as "new <em>compiler</em>"</p>



<a name="163495303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495303">(Apr 16 2019 at 18:40)</a>:</h4>
<p>Haha I realised</p>



<a name="163495314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495314">(Apr 16 2019 at 18:41)</a>:</h4>
<p>It's not super interesting really, except that I now have a much faster machine to do benchmarks, if there are any, on</p>



<a name="163495320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495320">(Apr 16 2019 at 18:41)</a>:</h4>
<p>Well, that seems positive =)</p>



<a name="163495340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495340">(Apr 16 2019 at 18:41)</a>:</h4>
<p>You opened that PR to extend rustc with the new hybrid algorithm</p>



<a name="163495347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495347">(Apr 16 2019 at 18:41)</a>:</h4>
<p>I haven't followed what happened to it since :)</p>



<a name="163495372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495372">(Apr 16 2019 at 18:41)</a>:</h4>
<p>Oh, wow, <a href="https://github.com/rust-lang/rust/pull/59856" target="_blank" title="https://github.com/rust-lang/rust/pull/59856">it landed</a></p>



<a name="163495444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495444">(Apr 16 2019 at 18:42)</a>:</h4>
<p>I'm not accustomed to things that touch <code>Cargo.lock</code> <em>ever</em> landing</p>



<a name="163495446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495446">(Apr 16 2019 at 18:42)</a>:</h4>
<p>Ah, yes, but that's just version-bumping, that's not liveness</p>



<a name="163495452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495452">(Apr 16 2019 at 18:42)</a>:</h4>
<p>I know</p>



<a name="163495454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495454">(Apr 16 2019 at 18:42)</a>:</h4>
<p>Haha</p>



<a name="163495459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495459">(Apr 16 2019 at 18:42)</a>:</h4>
<p>But we can now test the hybrid algorithm, at least :)</p>



<a name="163495461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495461">(Apr 16 2019 at 18:42)</a>:</h4>
<p>Well I didn't know that and so wasn't impressed</p>



<a name="163495463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495463">(Apr 16 2019 at 18:42)</a>:</h4>
<p>Not that it's so important</p>



<a name="163495470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495470">(Apr 16 2019 at 18:42)</a>:</h4>
<p>But as far as liveness, you didn't get a chance to do much, is that correct?</p>



<a name="163495484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495484">(Apr 16 2019 at 18:42)</a>:</h4>
<p>Oh, I did use Criterion to implement some micro-benchmarks that compared hybrid to the built-in</p>



<a name="163495514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495514">(Apr 16 2019 at 18:43)</a>:</h4>
<p>That's correct, I'm still blocking on "how in the world does even rustc work"</p>



<a name="163495605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495605">(Apr 16 2019 at 18:44)</a>:</h4>
<p>Well wait</p>



<a name="163495614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495614">(Apr 16 2019 at 18:44)</a>:</h4>
<p>I'm remembering now</p>



<a name="163495629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495629">(Apr 16 2019 at 18:44)</a>:</h4>
<p>I had written up some simple instructons to extend polonius with liveness analysis, and you did those</p>



<a name="163495633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495633">(Apr 16 2019 at 18:44)</a>:</h4>
<p>(Correct?)</p>



<a name="163495637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495637">(Apr 16 2019 at 18:44)</a>:</h4>
<p>Yes, and then you helped me fix the off-by-one error</p>



<a name="163495638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495638">(Apr 16 2019 at 18:44)</a>:</h4>
<p>So I guess we need some new instructions to cover the part about extending rustc</p>



<a name="163495649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495649">(Apr 16 2019 at 18:44)</a>:</h4>
<p>Exactly, and I tried that on my own first</p>



<a name="163495650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495650">(Apr 16 2019 at 18:44)</a>:</h4>
<p>But -- we can probably land that first set of changes, in theory</p>



<a name="163495681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495681">(Apr 16 2019 at 18:45)</a>:</h4>
<p>or at least open a draft PR</p>



<a name="163495694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495694">(Apr 16 2019 at 18:45)</a>:</h4>
<p>( Not clear that there's a ton of value in landing them as they are )</p>



<a name="163495705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495705">(Apr 16 2019 at 18:45)</a>:</h4>
<p>Yes, and no</p>



<a name="163495711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495711">(Apr 16 2019 at 18:45)</a>:</h4>
<p>We may want to, though, to make it easier to modify rustc</p>



<a name="163495724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495724">(Apr 16 2019 at 18:45)</a>:</h4>
<p>e.g., to add a new set of facts that rustc can export</p>



<a name="163495739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495739">(Apr 16 2019 at 18:45)</a>:</h4>
<p>One of the problems, one that I ran into as I was trying this on my own, is that <code>Output</code> is now generic to variables</p>



<a name="163495782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495782">(Apr 16 2019 at 18:46)</a>:</h4>
<p>That is, the output from Polonius</p>



<a name="163495835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495835">(Apr 16 2019 at 18:46)</a>:</h4>
<p>And I have <em>no idea</em> what to use for the variable type, because I found nothing in the NLL code that looks even a bit like a unique variable identifier type</p>



<a name="163495874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495874">(Apr 16 2019 at 18:47)</a>:</h4>
<p>Ah. The answer is <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/struct.Local.html" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/struct.Local.html"><code>rustc::mir::Local</code></a></p>



<a name="163495899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495899">(Apr 16 2019 at 18:47)</a>:</h4>
<p>I'm wondering if it makes sense to do another (recorded) Zoom dive</p>



<a name="163495901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495901">(Apr 16 2019 at 18:47)</a>:</h4>
<p>Great, that's progress already!</p>



<a name="163495908"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495908" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495908">(Apr 16 2019 at 18:47)</a>:</h4>
<p>And, if so, exactly what to cover :)</p>



<a name="163495911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495911">(Apr 16 2019 at 18:47)</a>:</h4>
<p>Maybe not</p>



<a name="163495929"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495929" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495929">(Apr 16 2019 at 18:47)</a>:</h4>
<p>I guess we could start with me just attempting to write up some notes</p>



<a name="163495938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163495938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163495938">(Apr 16 2019 at 18:47)</a>:</h4>
<p>e.g., with some info like this :)</p>



<a name="163496022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496022">(Apr 16 2019 at 18:48)</a>:</h4>
<p>basically there would be two options</p>



<a name="163496027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496027">(Apr 16 2019 at 18:48)</a>:</h4>
<p>either I try to write up some notes</p>



<a name="163496031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496031">(Apr 16 2019 at 18:48)</a>:</h4>
<p>or we do a zoom call and try to write up the notes together</p>



<a name="163496040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496040">(Apr 16 2019 at 18:49)</a>:</h4>
<p>explaining here and there as we go</p>



<a name="163496078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496078">(Apr 16 2019 at 18:49)</a>:</h4>
<p>As in right now you mean, or later?</p>



<a name="163496180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496180">(Apr 16 2019 at 18:50)</a>:</h4>
<p>I didn't mean this second</p>



<a name="163496182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496182">(Apr 16 2019 at 18:50)</a>:</h4>
<p>Probably friday</p>



<a name="163496203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496203">(Apr 16 2019 at 18:51)</a>:</h4>
<p>I guess it depends which you would prefer, in part</p>



<a name="163496216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496216">(Apr 16 2019 at 18:51)</a>:</h4>
<p>I can at least try to leave some notes today and maybe we can decide over next couple of days whether to also do something on friday or later</p>



<a name="163496217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496217">(Apr 16 2019 at 18:51)</a>:</h4>
<p>I'm at my parent's on Friday evening, which isn't necessarily a problem</p>



<a name="163496234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496234">(Apr 16 2019 at 18:51)</a>:</h4>
<p>(I could also do Friday afternoon, if that's preferred)</p>



<a name="163496238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496238">(Apr 16 2019 at 18:51)</a>:</h4>
<p>Yes, I think that's a good idea</p>



<a name="163496268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496268">(Apr 16 2019 at 18:52)</a>:</h4>
<blockquote>
<p>I can at least try to leave some notes today and maybe we can decide over next couple of days whether to also do something on friday or later</p>
</blockquote>
<p>you mean this?</p>



<a name="163496300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496300">(Apr 16 2019 at 18:52)</a>:</h4>
<blockquote>
<blockquote>
<p>I can at least try to leave some notes today and maybe we can decide over next couple of days whether to also do something on friday or later</p>
</blockquote>
<p>you mean this?</p>
</blockquote>
<p>Err, yes (I need to learn the Zulip hotkeys)</p>



<a name="163496314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496314">(Apr 16 2019 at 18:52)</a>:</h4>
<p>(I wish Zulip made replying to messages a bit more first-class -- need threading within a topic, too...ah well :)</p>



<a name="163496352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496352">(Apr 16 2019 at 18:53)</a>:</h4>
<p>OK. So in terms of trying to come up with a schedule</p>



<a name="163496362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496362">(Apr 16 2019 at 18:53)</a>:</h4>
<p>I was looking over the <a href="https://paper.dropbox.com/doc/Polonius-Roadmap--AbWLdB1WvUoWynPdjZ8OcYdbAg-hk3a9ynduUN2gk1A0NNTF" target="_blank" title="https://paper.dropbox.com/doc/Polonius-Roadmap--AbWLdB1WvUoWynPdjZ8OcYdbAg-hk3a9ynduUN2gk1A0NNTF">polonius roadmap paper doc</a>...</p>



<a name="163496387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496387">(Apr 16 2019 at 18:53)</a>:</h4>
<blockquote>
<blockquote>
<p>I can at least try to leave some notes today and maybe we can decide over next couple of days whether to also do something on friday or later</p>
</blockquote>
<p>you mean this?</p>
</blockquote>
<p>Anyway, I think this is a good solution because it a) unblocks me and has me continuing so that I b) have relevant questions for the Zoom session</p>



<a name="163496397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496397">(Apr 16 2019 at 18:54)</a>:</h4>
<p>Yep</p>



<a name="163496442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496442">(Apr 16 2019 at 18:54)</a>:</h4>
<p>there is this list:</p>
<ul>
<li>Integrating outlives relations (blogpost)<ul>
<li>lqd has a preliminary PR (link)</li>
</ul>
</li>
<li>Handling higher-ranked things (intersects universes and traits group)<ul>
<li>see also this blog post.</li>
</ul>
</li>
<li>Integrating move / overwrite analysis (a la Lark)</li>
<li>Integrating liveness <a href="https://github.com/rust-lang-nursery/polonius/issues/104" target="_blank" title="https://github.com/rust-lang-nursery/polonius/issues/104">polonius#104</a></li>
</ul>



<a name="163496447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496447">(Apr 16 2019 at 18:54)</a>:</h4>
<p>I think this still more or less covers all the major steps</p>



<a name="163496479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496479">(Apr 16 2019 at 18:54)</a>:</h4>
<p>but it's a bit high-level :)</p>



<a name="163496496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496496">(Apr 16 2019 at 18:54)</a>:</h4>
<p>It is</p>



<a name="163496518"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496518" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496518">(Apr 16 2019 at 18:55)</a>:</h4>
<p>and these things are not all alike</p>



<a name="163496535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496535">(Apr 16 2019 at 18:55)</a>:</h4>
<p>so I think the liveness stuff is ultimately fairly straightforward, although there is a good question as to whether i'm overlooking something</p>



<a name="163496552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496552">(Apr 16 2019 at 18:55)</a>:</h4>
<p>I'm going to reorder the steps in roughly the order I think we should be working on them</p>



<a name="163496658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496658">(Apr 16 2019 at 18:57)</a>:</h4>
<p>So this is I think the full set of steps for liveness:</p>
<ul>
<li>Integrating liveness <a href="https://github.com/rust-lang-nursery/polonius/issues/104" target="_blank" title="https://github.com/rust-lang-nursery/polonius/issues/104"><a href="https://github.com/rust-lang-nursery/polonius/issues/104" target="_blank" title="https://github.com/rust-lang-nursery/polonius/issues/104"><a href="https://github.com/rust-lang-nursery/polonius/issues/104" target="_blank" title="https://github.com/rust-lang-nursery/polonius/issues/104">polonius#104</a></a></a><ul>
<li>Extend analysis to compute use-live and drop-live variables at each point</li>
<li>Extend rustc to emit use, drop, and def facts for variables</li>
<li>Extend rustc to emit types of variables, or at least regions that appear in those types</li>
<li>Combine to compute which regions are live at which point</li>
</ul>
</li>
</ul>



<a name="163496669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496669">(Apr 16 2019 at 18:57)</a>:</h4>
<p>I don't expect you to understand everything I wrote there</p>



<a name="163496675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496675">(Apr 16 2019 at 18:57)</a>:</h4>
<p>But you more or less did the first step, though there is this use-live and drop-live twist</p>



<a name="163496695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496695">(Apr 16 2019 at 18:57)</a>:</h4>
<p>By the way, have you seen <a href="https://rust-lang.github.io/rfcs/2094-nll.html" target="_blank" title="https://rust-lang.github.io/rfcs/2094-nll.html">the NLL RFC</a>?</p>



<a name="163496709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496709">(Apr 16 2019 at 18:57)</a>:</h4>
<p>Seen yes, read closely: no</p>



<a name="163496776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496776">(Apr 16 2019 at 18:58)</a>:</h4>
<p>In particular, it has <a href="https://rust-lang.github.io/rfcs/2094-nll.html#liveness" target="_blank" title="https://rust-lang.github.io/rfcs/2094-nll.html#liveness">a section on liveness</a></p>



<a name="163496811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496811">(Apr 16 2019 at 18:58)</a>:</h4>
<p>and a second section on <a href="https://rust-lang.github.io/rfcs/2094-nll.html#layer-3-accommodating-dropck" target="_blank" title="https://rust-lang.github.io/rfcs/2094-nll.html#layer-3-accommodating-dropck">accommodating dropck</a></p>



<a name="163496827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496827">(Apr 16 2019 at 18:58)</a>:</h4>
<p>these bits are all quite relevant</p>



<a name="163496844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496844">(Apr 16 2019 at 18:59)</a>:</h4>
<p>(the latter bit introduces this use-live vs drop-live distinction)</p>



<a name="163496897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163496897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163496897">(Apr 16 2019 at 18:59)</a>:</h4>
<p>Ah, ok so there is a difference between drop uses and live uses, basically</p>



<a name="163497048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497048">(Apr 16 2019 at 19:01)</a>:</h4>
<p>Yes</p>



<a name="163497056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497056">(Apr 16 2019 at 19:01)</a>:</h4>
<p>The basic idea of NLL is this</p>



<a name="163497063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497063">(Apr 16 2019 at 19:01)</a>:</h4>
<p>Well, I guess that makes sense given that drop isn't a real "use" that needs the data</p>



<a name="163497072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497072">(Apr 16 2019 at 19:01)</a>:</h4>
<p>Any place where a variable <code>X</code> is live, then any regions that appear in its type <code>T</code> are "live" --</p>



<a name="163497096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497096">(Apr 16 2019 at 19:01)</a>:</h4>
<p>but if the only reason that <code>X</code> is live is because it will be <em>dropped</em>, we're a bit more precise, and we only include those regions that the drop may examine</p>



<a name="163497163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497163">(Apr 16 2019 at 19:02)</a>:</h4>
<p>I guess the most naive thing we can do</p>



<a name="163497169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497169">(Apr 16 2019 at 19:02)</a>:</h4>
<p>and probably the thing we should do to start</p>



<a name="163497177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497177">(Apr 16 2019 at 19:02)</a>:</h4>
<p>is to compute two entirely separate notions of liveness</p>



<a name="163497199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497199">(Apr 16 2019 at 19:02)</a>:</h4>
<p>this is inefficient because the places that a variable is a "drop-live" are a superset of those places where it is "use-live", in some sense</p>



<a name="163497239"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497239" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497239">(Apr 16 2019 at 19:03)</a>:</h4>
<p>although I guess that this is not <em>strictly</em> true, depending on how you define things, because -- for some variables -- we have no drop at all, since we can trivially see the drop is a no-op</p>



<a name="163497378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497378">(Apr 16 2019 at 19:05)</a>:</h4>
<p>Hmm, ok</p>



<a name="163497384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497384">(Apr 16 2019 at 19:05)</a>:</h4>
<p>(I'm digesting this)</p>



<a name="163497502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497502">(Apr 16 2019 at 19:06)</a>:</h4>
<p>Anyway, it's honestly a bit hard for me to tell how long this will take you :)</p>



<a name="163497510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497510">(Apr 16 2019 at 19:06)</a>:</h4>
<p>To begin with the real basics,  the reason we need to compute regions at all is that they may be referred to by types ('a etc), right? If they were only calculated implicitly, we could only trace each variable on its own?</p>



<a name="163497511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497511">(Apr 16 2019 at 19:06)</a>:</h4>
<p>But it seems like it'd be good to try and elaborate the other steps to a similar level of detail</p>



<a name="163497513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497513">(Apr 16 2019 at 19:06)</a>:</h4>
<p>Yes, I agree</p>



<a name="163497531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497531">(Apr 16 2019 at 19:07)</a>:</h4>
<blockquote>
<p>Anyway, it's honestly a bit hard for me to tell how long this will take you :)</p>
</blockquote>
<p>and maybe we can calibrate how long to expect for the other changes based partially on this data :)</p>



<a name="163497538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497538">(Apr 16 2019 at 19:07)</a>:</h4>
<p>(that said, it's the hardest right now, where you are still building up context)</p>



<a name="163497549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497549">(Apr 16 2019 at 19:07)</a>:</h4>
<blockquote>
<p>To begin with the real basics,  the reason we need to compute regions at all is that they may be referred to by types ('a etc), right? If they were only calculated implicitly, we could only trace each variable on its own?</p>
</blockquote>
<p>I..guess? I'm not sure 100% what this means</p>



<a name="163497647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497647">(Apr 16 2019 at 19:08)</a>:</h4>
<blockquote>
<blockquote>
<p>To begin with the real basics,  the reason we need to compute regions at all is that they may be referred to by types ('a etc), right? If they were only calculated implicitly, we could only trace each variable on its own?</p>
</blockquote>
<p>I..guess? I'm not sure 100% what this means</p>
</blockquote>
<p>I'll see if I have more questions once I have re-read the NLL RFC and/or the Rust manual, but let's drop it for now (harr harr) and I'll add it to my backlog of things to think about</p>



<a name="163497709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497709">(Apr 16 2019 at 19:09)</a>:</h4>
<p>yes, ok</p>



<a name="163497770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497770">(Apr 16 2019 at 19:10)</a>:</h4>
<p>so it seems like we're ok for now, but I'll put in some energy to trying to enumerate the other points</p>



<a name="163497823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497823">(Apr 16 2019 at 19:11)</a>:</h4>
<p>basically I have two work items:</p>
<ul>
<li>try to lay out the roadmap steps in more detail</li>
<li>leave some tips for what changes to make in rustc</li>
</ul>



<a name="163497840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497840">(Apr 16 2019 at 19:11)</a>:</h4>
<p>I have a question re: rustc, do you know how to build a copy of rustc that (locally) uses a distinct polonius-engine?</p>



<a name="163497854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497854">(Apr 16 2019 at 19:11)</a>:</h4>
<p>That is, you can configure rustc to use a polonius-engine from a local directory instead of <a href="http://crates.io" target="_blank" title="http://crates.io">crates.io</a></p>



<a name="163497876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497876">(Apr 16 2019 at 19:11)</a>:</h4>
<p>This would allow you to (for example) modify polonius-engine with new facts and things</p>



<a name="163497908"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497908" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497908">(Apr 16 2019 at 19:12)</a>:</h4>
<p>and then build against that</p>



<a name="163497928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497928">(Apr 16 2019 at 19:12)</a>:</h4>
<p>and co-develop</p>



<a name="163497936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497936">(Apr 16 2019 at 19:12)</a>:</h4>
<blockquote>
<p>That is, you can configure rustc to use a polonius-engine from a local directory instead of <a href="http://crates.io" target="_blank" title="http://crates.io">crates.io</a></p>
</blockquote>
<p>Yes, that's the thing I <em>did</em> figure out when trying generate the facts on my own</p>



<a name="163497945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497945">(Apr 16 2019 at 19:12)</a>:</h4>
<p>Basically I stared from that and tried to see what broke in the compilation</p>



<a name="163497963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497963">(Apr 16 2019 at 19:12)</a>:</h4>
<p>I am also fairly sure I have managed to build and use my own versions of rustc, but it's a bit hard to tell</p>



<a name="163497981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163497981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163497981">(Apr 16 2019 at 19:13)</a>:</h4>
<p>(I'll try to make one that crashes, that's usually a way to be sure)</p>



<a name="163498000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163498000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163498000">(Apr 16 2019 at 19:13)</a>:</h4>
<p>heh :) you can tell with <code>rustc -vV</code> as well, I think</p>



<a name="163498005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163498005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163498005">(Apr 16 2019 at 19:13)</a>:</h4>
<p>the output is pretty different</p>



<a name="163498053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163498053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163498053">(Apr 16 2019 at 19:14)</a>:</h4>
<p>e.g., </p>
<div class="codehilite"><pre><span></span>&gt; rustc +nightly -vV
rustc <span class="m">1</span>.35.0-nightly <span class="o">(</span>82e2f3ec2 <span class="m">2019</span>-03-20<span class="o">)</span>
binary: rustc
commit-hash: 82e2f3ec25a316c7536c33a6b6704366b14cbf2a
commit-date: <span class="m">2019</span>-03-20
host: x86_64-unknown-linux-gnu
release: <span class="m">1</span>.35.0-nightly
LLVM version: <span class="m">8</span>.0
&gt; rustc +rust-0-stage2 -vV
rustc <span class="m">1</span>.33.0-dev
binary: rustc
commit-hash: unknown
commit-date: unknown
host: x86_64-unknown-linux-gnu
release: <span class="m">1</span>.33.0-dev
LLVM version: <span class="m">8</span>.0
</pre></div>



<a name="163498177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163498177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163498177">(Apr 16 2019 at 19:15)</a>:</h4>
<p>Well, this looks promising:</p>
<div class="codehilite"><pre><span></span>➜  Masterprojekt rustc +stage1 -vV
rustc 1.35.0-dev
binary: rustc
commit-hash: unknown
commit-date: unknown
host: x86_64-apple-darwin
release: 1.35.0-dev
LLVM version: 8.0

➜  Masterprojekt rustc +nightly -vV
rustc 1.35.0-nightly (3de010678 2019-04-11)
binary: rustc
commit-hash: 3de0106789468b211bcc3a25c09c0cf07119186d
commit-date: 2019-04-11
host: x86_64-apple-darwin
release: 1.35.0-nightly
LLVM version: 8.0
</pre></div>



<a name="163498352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163498352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163498352">(Apr 16 2019 at 19:17)</a>:</h4>
<p>But I guess the relevant question for me is what <em>my</em> next step is</p>



<a name="163498748"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163498748" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163498748">(Apr 16 2019 at 19:23)</a>:</h4>
<p>Also, is there anyone besides you I can/should ask about NLL/facts generation stuff when you are not around? Except yelling at the entire stream handle and hoping someone's responding</p>



<a name="163499520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163499520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163499520">(Apr 16 2019 at 19:31)</a>:</h4>
<blockquote>
<ul>
<li>[ ] convert rustc to use the hybrid algorithm by default </li>
</ul>
</blockquote>
<p>err, I just realised I never actually changed the default. Should I make a new PR with only that change, or piggy-back it on lifetimes when they land?</p>



<a name="163500083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163500083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163500083">(Apr 16 2019 at 19:39)</a>:</h4>
<p>(On my phone) IIRC you did change the default in your rustc PR (a string changing from DatafrogOpt to Hybrid)</p>



<a name="163500255"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/meeting%202019.04.16/near/163500255" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/meeting.202019.2E04.2E16.html#163500255">(Apr 16 2019 at 19:41)</a>:</h4>
<blockquote>
<p>(On my phone) IIRC you did change the default in your rustc PR (a string changing from DatafrogOpt to Hybrid)</p>
</blockquote>
<p>Nevermind, I did, and then I forgot about it</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>